package top.crossrun.webview.bridge.core.pls;

/**
 * create by Run
 * on 2020/7/20 13:52
 * do
 */
public interface WebViewActivityRegister {
    /**
     * 获得一个已注册的原生方法
     *
     * @param name
     * @return
     */
    WebViewBridgePlugin getBridgePlugin(String name);

    /**
     * 以class方式注册一个原生方法，必须有一个无构造参数的构造方法。<br>
     * 注册时不会初始化，在调用的时候才会初始化并保存
     *
     * @param name
     * @param s
     */
    void pluginRegister(String name, Class<? extends WebViewBridgePlugin> s);

    /**
     * 注册方法供js调用
     *
     * @param handlerName 方法名，不可为空
     * @param handler     执行逻辑，不可为空
     * @param needContext 收到命令时获取不到context，是否中断插件执行，true=中断
     */
    void pluginRegister(String handlerName, WebViewBridgeHandler handler, boolean needContext);

    /**
     * 注册方法供js调用
     *
     * @param webViewBridgePlugin 封装的
     */
    void pluginRegister(WebViewBridgePlugin webViewBridgePlugin);

}
